var express = require('express');
var router = express.Router();

/* 获取 */
router.get('/', function (req, res, next) {
	var search = {};

	Db.SystemMenu.find(search, function(err, menus) {
		if (err) {
			res.send(500, err);
			return;
		}

		res.send(menus);
	});
});
router.get('/:id', function (req, res, next) {
	var id = req.params.id;
	Db.SystemMenu.findById(id, function(err, menu) {
		if (err) {
			res.send(500, err);
			return;
		}

		if (menu) {
			res.send(menu);
		} else {
			res.send(404);
		}
	});
});

/* 新增 */
router.post('/', function (req, res, next) {
	var menu = new Db.SystemMenu(req.body);

	var err = menu.validateSync();
	if (err) {
		res.send(500, err);
		return;
	}

	menu.save(function(err) {
		if (err) {
			res.send(500, err);
			return;
		}

		res.send(menu);
	});
});

/* 修改 */
router.put('/:id', function(req, res, next) {
	var id = req.params.id;
	Db.SystemMenu.findById(id, function(err, menu) {
		if (err) {
			res.send(500, err);
			return;
		}

		if (menu) {
			for (var path in req.body) {
				menu.set(path, req.body[path]);
			}

			var err = menu.validateSync();
			if (err) {
				res.send(500, err);
				return;
			}

			menu.save(function(err) {
				if (err) {
					res.send(500, err);
					return;
				}

				res.send(menu);
			});
		} else {
			res.send(404);
		}
	});
});

/* Delete */
router.delete('/:id', function(req, res, next) {
	var id = req.params.id;
	Db.SystemMenu.findById(id, function(err, menu) {
		if (err) {
			res.send(500, err);
			return;
		}

		if (menu) {
			menu.remove(function(err) {
				if (err) {
					res.send(500, err);
					return;
				}

				res.send(menu);
			});
		} else {
			res.send(404);
		}
	});
});


module.exports = router;
